<samples>
  <folder name="Basic" description="Basic code samples that shows Ela syntax and its main peculiarities.">
    <sample file="helloworld.ela" name="Hello, World!" description="A mandatory 'Hello, world!' program in Ela." />
    <sample file="variables.ela" name="Variables" description="How to declare global and local variables in Ela." />
    <sample file="operators.ela" name="Operators" description="Basic introduction to standard operations in Ela." />
    <sample file="tuples.ela" name="Tuples" description="This file contains samples that illustrate how to work with tuples in Ela." />
    <sample file="lists.ela" name="Lists" description="Linked lists are a fundamental data sturcture in Ela. This sample explains how to work with lists." />
    <sample file="functionfefinition.ela" name="Function Definition" description="This sample explains how to define functions in Ela." />
    <sample file="errors.ela" name="Errors" description="An example of error handling in Ela." />
  </folder>
  <folder name="Well known functions" descriptions="Contains implementations of different well known functions in Ela.">
    <sample file="quicksort.ela" name="Quick Sort" description="An implementation of quick sort algorythm in Ela." />
    <sample file="linq.ela" name="LINQ" description="This code sample contains implementation of Linq-style lazy functions." />
    <sample file="levenshtein.ela" name="Levenshtein Distance" description="In information theory and computer science, the Levenshtein distance is a metric for measuring the amount of difference between two sequences (i.e. an edit distance). This code sample calculates the difference between two strings." />
    <sample file="amb.ela" name="Amb operator" description="An example of Amb operator implementation. The Amb operator takes a number of words as input and concatenates them so that each subsequent word starts with the letter that ends a previous word." />
  </folder>
  <folder name="Imperative" description="This folder contains imperative code samples in Ela.">
    <sample file="guessnumber.ela" name="Guess Number (Console IO)" description="Guess the number game that demonstrates imperative code in Ela that involves console input/output and user interaction." />
    <sample file="foroperator.ela" name="For Operator" description="An implementation of 'for' operator in Ela using higher-order function." />
    <sample file="iterator.ela" name="Iterator Pattern" description="An implementation of an interator pattern (the one that is commonly used by imperative languages) in Ela." />
  </folder>
  <folder name="Non-strict evaluation" description="This folder contains samples that demonstrate non-strict evalation.">
    <sample file="ycombinator.ela" name="Y Combinator" description="Implementation of lazy Y combinator in Ela which is used to compute factorials and Fibonacci numbers implemented as stateless (with no recursion) functions."></sample>
    <sample file="infinitefilter.ela" name="Filtering infinite list" description="Filtering an infinite list in Ela using non-strict filter' function." />
  </folder>
  <folder name="Advanced" description="Samples that demonstrated advanced applications of Ela.">
    <sample file="hq9p.ela" name="HQ9+" description="An implementation of HQ9+ interpreter in Ela." />
    <sample file="calculator.ela" name="RPN Calculator" description="This sample demonstrates a stack-based evaluator for an expression in reverse Polish notation (RPN)." />
    <sample file="cypher.ela" name="Caesar Cypher" description="This code sample implements Ceasar cypher - both encoding and decoding." />
    <sample file="ant.ela" name="Langton's Ant" description="Langton's ant is a cellular automaton that models an ant sitting on a plane of cells." />
    <sample file="abc.ela" name="ABC Blocks" description="In this code sample we have a collection of ABC blocks (like the ones we have we were kids)..." />
  </folder>
</samples>